<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 递归函数：函数直接或间接调用它本身的函数
        // function fun(){
            // fun()  // 递归函数
        // }  // 定义函数
        // fun() // 调用函数

        // 4的阶乘：4*3*2*1
        // 4*(4-1)*(3-1)*(2-1)*1
        // 当最后一个数等于1的时候，得出1本身
        // 当最后一个数不等于1的时候，等于num * count(num-1)

        function count(num){
            if(num == 1){
                return num;
            }else{
                return num * count(num - 1);
            }
        }

        // 1. 当num=4的时候，执行 return num * count(num - 1); 
        // ==> return 4 * count(3);
        // 2. 当num=3的时候，执行 return num * count(num - 1);
        // ==> return 3 * count(2);
        // 3. 当num=2的时候，执行 return num * count(num - 1);
        // ==> return 2 * count(1);
        // 4. 当num=1的时候，执行 return num;

        // 最终结果：4 * 3 * 2 * 1;

        console.log(count(4));
    </script>
</body>
</html>